#ifndef PHP_URL_CLASS
#define PHP_URL_CLASS

#include "php.h"
#include "Text/Url.hpp"
#include <stdexcept>
#include <functional>

zend_class_entry *php_url_ce; 
zend_object_handlers php_url_object_handlers; 

#define URL_CLASS_NAME EVILWORLDS_NS "\\Text\\Url"

PHP_METHOD(Url, __construct); 
PHP_METHOD(Url, parse); 
PHP_METHOD(Url, addQueryValues); 
PHP_METHOD(Url, __get); 
PHP_METHOD(Url, __set); 
PHP_METHOD(Url, __unset); 
PHP_METHOD(Url, __isset); 
PHP_METHOD(Url, __toString); 
PHP_METHOD(Url, get); 
PHP_METHOD(Url, setModule); 
PHP_METHOD(Url, offsetSet); 
PHP_METHOD(Url, offsetExists); 
PHP_METHOD(Url, offsetUnset); 
PHP_METHOD(Url, offsetGet); 
PHP_METHOD(Url, getUrl); 
		
struct php_url_object {
	zend_object std; 
	Url        *url; 
}; 

void init_url_preprocessor(); 
void destroy_url_preprocessor(); 
#endif // PHP_PREPROCESSOR_CLASS
